// pages/movie/movie-more/movie-more.js
var util = require('../../../util/util.js');
var app = getApp();
Page({
  data: {
    // 加载的数据索引起点
    startNum: 0,
    movies: []
  },
  onLoad: function(options) {
    var listTitle = options.listTitle,
      type = '';
      // 判断标题类型，得到获取数据参数
    switch (listTitle) {
      case '正在热映':
        type = 'in_theaters';
        break;
      case '豆瓣评分top250':
        type = 'top250';
        break;
      case '即将上映':
        type = 'coming_soon';
        break;
    }
    // 设置页面标题数据，api的type
    this.setData({
      listTitle: listTitle,
      type: type
    });
    // 根据不同的类型请求数据，type为数据类别请求的参数
   this.getData(type);
  },
  onReady: function() {
    var listTitle = this.data.listTitle;
    //  设置页面导航条的标题
    wx.setNavigationBarTitle({
      title: listTitle
    })
  },
  // 请求数据,type，数据类型,isPull,boolean,true为下拉刷新
  getData: function(type, isPull) {
    var that = this;
    // 下拉刷新设置请求起点为0，否则上滑加载用累加值
    var start = isPull ? '0' : this.data.startNum;
    wx.request({
      url: app.g_api + 'movie/' + type + '?start=' + start + '&count=10',
      header: {
        'content-type': 'json'
      },
      success: function (res) {
        var thisData = res.data.subjects;
        that.dealData(thisData, isPull)
      }
    })
  },
  // 对电影数据的处理并添加入data,subjects电影数据对象
  // isPull,下拉刷新，如果是则设置缓存movie为空，否则使用原有数据
  dealData: function(subjects, isPull) {
    var movies = isPull ? [] : this.data.movies;
    for (var item in subjects) {
      var obj = subjects[item];
      // 对电影对象的标题长度进行控制，不超过6个字,超过则截取前6字后添加省略号
      var movieTitle = obj.title,
        len = movieTitle.length;
      if (len > 6) {
        movieTitle = movieTitle.slice(0, 6) + '...'
      }
      // 获取星星的状态数组
      var stars = util.getStarStatus(obj.rating.stars);
      var temp = {
        'title': movieTitle,
        'average': obj.rating.average,
        'picture': obj.images.large,
        'stars': stars
      }
      movies.push(temp);
    }
    // 数据加载索引起点增加10
    var startNum = this.data.startNum + 10
    this.setData({
      movies: movies,
      startNum: startNum
    });
    wx.hideNavigationBarLoading()
  },
  // 上滑加载更多数据
  onReachBottom: function() {
    wx.showNavigationBarLoading() //在标题栏中显示加载
    var type =  this.data.type;
    // 请求更多数据后对数据进行处理
    this.getData(type);
  },
  // 下拉刷新
  onPullDownRefresh: function() {
    wx.showNavigationBarLoading() //在标题栏中显示加载
    var type = this.data.type;
    // 请求更多数据后对数据进行处理
    this.getData(type, true);
  }
})